package com.saer.client.tab.diagnostico;

import com.google.gwt.core.client.GWT;
import com.saer.client.constants.ClientConstants;
import com.saer.client.dto.diagnostico.VisitaDto;
import com.saer.client.form.diagnostico.VisitaForm;
import com.saer.client.stack.DiagnosticoStack;
import com.saer.client.tab.BaseTab;
import com.saer.client.tab.visita.VisitaTab;
import com.saer.client.window.PopUpWindow;
import com.saer.client.window.ReplyWindow;
import com.smartgwt.client.types.ContentsType;
import com.smartgwt.client.widgets.Button;
import com.smartgwt.client.widgets.HTMLPane;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VStack;

public class DiagnosticoDistanciaTab extends BaseTab {

	private DiagnosticoStack diagnosticoStack = new DiagnosticoStack();
	private VisitaForm visitaForm = new VisitaForm();
	private VisitaDto visitaDto = null;
	private VisitaTab visitaTab = null;
	private Button respondButton = null;

	public DiagnosticoDistanciaTab(VisitaTab vVisitaTab) {
		super(ClientConstants.DIAGNOSTICO_A_DISTANCIA);
		
		this.visitaTab = vVisitaTab;
		
		this.setTitle("Informacion del Paciente");
		
		VStack vstack = new VStack();

		vstack.setSize("100%", "100%");
		vstack.setMembersMargin(5);
		vstack.setCanDropComponents(false);

		Button ecgButton = new Button("<b style=\"font-size:16px\">Electrocardiograma</b>");
		ecgButton.setHeight(35);
		ecgButton.setWidth(210);
		ecgButton.setIconSize(32);
		ecgButton.setIcon("icons/32/ecg.png");
		
		ecgButton.addClickHandler(new ClickHandler() {
			public void onClick(ClickEvent event) {
				HTMLPane htmlPane = new HTMLPane();
				GWT.getHostPageBaseURL();
				htmlPane.setContentsURL(GWT.getHostPageBaseURL() + "saer/ECGServlet?idVisita=" + visitaDto.getVisitaId());
				htmlPane.setContentsType(ContentsType.PAGE);
				new PopUpWindow(htmlPane);
			}
		});
		
		
		respondButton = new Button("<b style=\"font-size:16px\">Responder</b>");
		respondButton.setHeight(35);
		respondButton.setWidth(150);
		respondButton.setShowDisabledIcon(false);
		respondButton.setIconSize(32);
		respondButton.setIcon("icons/32/reply.png");
		
		respondButton.addClickHandler(new ClickHandler() {
			public void onClick(ClickEvent event) {
				new ReplyWindow(DiagnosticoDistanciaTab.this);
			}
		});
		
		HLayout buttonsLayout = new HLayout();
		buttonsLayout.setHeight(35);
		buttonsLayout.setLayoutLeftMargin(5);
		buttonsLayout.setMembersMargin(30);
		buttonsLayout.addMember(ecgButton);
		buttonsLayout.addMember(respondButton);

		vstack.addMember(diagnosticoStack);
		vstack.addMember(visitaForm);
		vstack.addMember(buttonsLayout);

		setPane(vstack);
	}

	public void setData(VisitaDto visita) {
		this.visitaDto = visita;
		respondButton.setDisabled(visitaDto.getEstado() == ClientConstants.VISITA_CONTESTADA);
		diagnosticoStack.setData(visita);
		visitaForm.setData(visita);
	}
	
	public VisitaDto getVisitaDto() {
		return visitaDto;
	}

	public Button getRespondButton() {
		return respondButton;
	}

	public VisitaTab getVisitaTab() {
		return visitaTab;
	}

}
